



// 重命名变量

const babel = require('@babel/core');
const parser = require('@babel/parser');
const traverse = require('@babel/traverse').default;

// 要转换的代码
const code = `
let x = 10;
function foo(x) {
    return x + 1;
}
console.log(x);
`;

// 解析代码为 AST
const ast = parser.parse(code);

// 定义 visitor 对象
const visitor = {
    Identifier(path) {
        if (path.node.name === 'x') {
            path.node.name = 'y'; // 将所有的 'x' 改为 'y'
        }
    }
};

// 遍历 AST
traverse(ast, visitor);

// 将修改后的 AST 转换回代码
const { code: transformedCode } = babel.transformFromAstSync(ast, null, {
    presets: ['@babel/preset-env']
});

// 输出转换后的代码
console.log(transformedCode);


// let y = 10;
// function foo(y) {
//     return y + 1;
// }
// console.log(y);